package com.whfc.safety.param;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @ClasssName SafetyCheckParam
 * @Description 问题上报请求类
 * @Author hw
 * @Date 2020/8/5 9:44
 * @Version 1.0
 */
@Data
public class SafetyCheckParam implements Serializable {

    /**
     * 组织机构ID
     */
    @NotNull
    private Integer deptId;

    /**
     * 检查部位ID
     */
    private Integer partId;

    /**
     * 检查部位名称
     */
    @NotEmpty
    @Size(min = 1, max = 30, message = "检查部位名称最长30位")
    private String partName;

    /**
     * 问题类型ID
     **/
    private Long issueTypeId;

    /**
     * 问题类型名称
     */
    private String issueTypeName;

    /**
     * 问题ID
     */
    private Long issueId;

    /**
     * 问题明细
     */
    @NotEmpty
    @Size(min = 1, max = 50, message = "问题明细最长50位")
    private String issueContent;

    /**
     * 整改要求
     */
    @NotEmpty
    @Size(min = 1, max = 200, message = "整改要求最长200位")
    private String rectifyRequire;

    /**
     * 整改期限
     */
    @NotNull
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date rectifyDuration;

    /**
     * 紧急程度1-一般2-紧急
     */
    @NotNull
    private Integer urgency;

    /**
     * 检查说明
     */
    @NotEmpty
    @Size(min = 1, max = 200, message = "检查说明最长200位")
    private String checkDesc;

    /**
     * 检查人ID
     */
    private Integer checkUserId;

    /**
     * 检查人姓名
     */
    private String checkUserName;

    /**
     * 位置信息
     */
    @NotEmpty
    private String address;

    /**
     * 经度
     */
    @NotNull
    private Double lng;

    /**
     * 纬度
     */
    @NotNull
    private Double lat;

    /**
     * 状态10-待整改 11-待整改(复查不合格) 12-待整改(核验不合格) 20-待复查 30-待核验 40-已完
     */
    private Integer state;

    /**
     * 图片地址
     */
    private List<String> imgUrls;

    /**
     * 上报流程人员信息
     */
    @NotEmpty
    private List<SafetyCheckUserParam> checkUsers;
}
